package bl.history;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.List;

import po.经营情况po;
import blservice.history.经营情况BLService;
import vo.BusinessConditionVo;
import dbservice.history.经营情况DBService;

public class 经营情况BL extends UnicastRemoteObject implements 经营情况BLService{
	
	private static final long serialVersionUID = -7232636160909311433L;
	private 经营情况DBService db;
	
	public 经营情况BL(经营情况DBService db) throws RemoteException{
		this.db=db;
	}
	
	public BusinessConditionVo get经营情况() throws RemoteException{
		List<经营情况po> r=db.get经营情况();
		return P2V(r);
	}
	
	public BusinessConditionVo get经营情况(BusinessConditionVo from) throws RemoteException{
		经营情况po po=new 经营情况po();
		po.set日期(from.get日期());
		List<经营情况po> r=db.get经营情况(po);
		return P2V(r);
	}
	
	private BusinessConditionVo P2V(List<经营情况po> r){		
		BusinessConditionVo result=new BusinessConditionVo();
		long 销售收入=0;
		long 商品报溢收入=0;
		long 成本调价收入=0;
		long 进货退货差价收入=0;
		long 代金券与实际收款差额收入=0;
		long 销售成本=0;
		long 商品报损支出=0;
		long 商品赠出支出=0;
		long 折让=0;
		for(int i=0;i<r.size();i++){
			销售收入=销售收入+r.get(i).get销售收入();
			商品报溢收入=商品报溢收入+r.get(i).get商品报溢收入();
			成本调价收入=成本调价收入+r.get(i).get成本调价收入();
			进货退货差价收入=进货退货差价收入+r.get(i).get进货退货差价收入();
			代金券与实际收款差额收入=代金券与实际收款差额收入+r.get(i).get代金券与实际收款差额收入();
			销售成本=销售成本+r.get(i).get销售成本();
			商品报损支出=商品报损支出+r.get(i).get商品报损支出();
			商品赠出支出=商品赠出支出+r.get(i).get商品赠出支出();
			折让=折让+r.get(i).get折让();
		}
		result.set代金券与实际收款差额收入(代金券与实际收款差额收入);
		result.set商品报损支出(商品报损支出);
		result.set商品报溢收入(商品报溢收入);
		result.set商品赠出支出(商品赠出支出);
		result.set成本调价收入(成本调价收入);
		result.set进货退货差价收入(进货退货差价收入);
		result.set销售成本(销售成本);
		result.set销售收入(销售收入);
		result.set折让(折让);
		result.successed();
		return result;
	}
	
}
